package com.molichuxing.gateway.bff.car.services;

import com.molichuxing.framework.dto.Paged;
import com.molichuxing.gateway.bff.car.entity.response.CarBasicVo;
import com.molichuxing.gateway.bff.car.entity.response.CarCheckVo;
import com.molichuxing.gateway.bff.car.entity.response.CheckVo;
import com.molichuxing.gateway.bff.car.entity.response.PdiCheckVo;
import com.molichuxing.services.infrastructure.dto.request.modify.CheckModifyDto;
import com.molichuxing.services.infrastructure.dto.request.modify.DisPdiCheckModifyDto;
import com.molichuxing.services.infrastructure.dto.request.modify.PdiCheckModifyDto;

import java.util.List;
import java.util.Map;

/**
 * 车辆检验BFF
 */
public interface CarCheckBffService {

	/**
	 * 根据车辆id获取检验信息
	 * @param carId
	 * @return
	 */
	List<CarCheckVo> getCarCheckListByCarId(Integer carId);

	/***
	 * 车辆检验详情基础信息 pdi 检验详情基础信息
	 * @param checkId
	 * @return
	 */
	CarBasicVo getCheckBasicInfo(Integer checkId) throws Exception;


	/***
	 * 根据检验id 获取检验信息
	 * @param checkId
	 * @return
	 */
	CheckVo getCheckNewInfo(Integer checkId) throws Exception;


	/***
	 * 根据检验id 获取PDI检验信息检验详情
	 * @param checkId
	 * @return
	 */
	PdiCheckVo getPdiCheckNewInfo(Integer checkId) throws Exception;

	/***
	 * 验车
	 * @param checkModifyDto
	 */
	Boolean checkCar(CheckModifyDto checkModifyDto) throws Exception;


	/**
	 * 获取PDI检验车辆检验列表
	 *
	 * @param selectParams
	 * @return
	 */
	Paged<CarCheckVo> getPdiCarCheck(Map<String, Object> selectParams) throws Exception;

	/***
	 * PDI验车
	 * @param pdiCheckModifyDto
	 */
	Boolean pdiCheckCar(PdiCheckModifyDto pdiCheckModifyDto) throws Exception;


	/***
	 * 争议处理
	 * @param disPdiCheckModifyDto
	 * @return
	 */
	Boolean discussPdiCheck(DisPdiCheckModifyDto disPdiCheckModifyDto) throws Exception;
}
